- 乘法表
乘法表(百度2016实习生真题)
题目描述
度度熊和爷爷在玩一个乘法表游戏。乘法表的第i行第j列位置的元素为$i*j$,并且乘法表下标编号从1开始,比如2 × 3乘法表为
1 2 3
2 4 6
爷爷十分聪明,对于nm的乘法表,只要度度熊给出一个数k,爷爷就能立刻告诉度度熊乘法表中元素按照不减顺序排列之后,第k个元素是多少。你能重复这个游戏吗?
输入
输入数据是三个整数:n, m, k (1≤n, $m≤5*10^5$, 1≤k≤nm)。
输出
输出n*m乘法表按照不减顺序排列的第k个数。
样例输入
2 3 4
样例输出
3
时间限制
C/C++语言:1000MS其它语言:3000MS
内存限制
C/C++语言:65536KB其它语言:589824KB
考点
- 二分查找法
- 巧算某个数在乘法表中是第几个数:对于每一列,如果k>=最后一个元素时,<=k的元素个数 = 总列数,否则个数 = k/行号,比如:n=6,m=3,k=6时,<=k的元素个数为:6+6/2+6/3 = 11
- long long 数据类型: 1≤n, m≤5*10^5,则nm超过了int或long的范围,得用long long数据类型。
代码
|
|